module teapo.storage.attached.dom { export class StorageDetect { private _parent: HTMLElement,
private _document: { createElement(tag: string): HTMLElement; } = document) { metadata: storage.attached.StorageDetect.BootState,
access: StorageAccess) => void): void { var editedUTC: number = 0;
var editedUTCValue = this._parent.getAttribute('data-edited-utc'); try { editedUTC = parseInt(editedUTCValue); } catch (parseEditedUTCError) { } var dodgyElements: HTMLElement[] = [];
var elementMap: { [fullPath: string]: HTMLElement; } = {}; var files: string[] = [];
for (var i = 0; i < this._parent.children.length; i++) { var element = <HTMLElement>this._parent.children.item(i);
var fullPath = this._getFullPath(element);
if (!fullPath || elementMap.hasOwnProperty(fullPath)) { dodgyElements.push(element);
elementMap[fullPath] = element;
for (var i = 0; i < dodgyElements.length; i++) { this._parent.removeChild(dodgyElements[i]);
var access = new StorageAccess(this._parent, elementMap, this._document);
private _getFullPath(element: HTMLElement): string { if (!element.getAttribute) { var fullPath = element.getAttribute('data-teapo-path');